package cn.yemuysy.code.check.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Set;

/**
 * 表示一个侵权词的模型类。
 * <p>
 * 此类定义了一个侵权词的核心属性，包括词语本身、是否区分大小写，
 * 以及该词适用于哪些站点。支持多站点标签和通配符。
 * </p>
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class InfringingWord {
    /**
     * 需要被检测的侵权词文本。
     */
    private String word;

    /**
     * 指定该词是否区分大小写。
     * <ul>
     *     <li>如果为 {@code true}，则 "Word" 和 "word" 会被视为不同的词。</li>
     *     <li>如果为 {@code false}，则 "Word" 和 "word" 会被视为相同的词。</li>
     * </ul>
     */
    private boolean caseSensitive;

    /**
     * 该侵权词适用的站点集合。
     * <p>
     * 可以是具体的站点标识符（如 "US", "DE"），也可以是通配符 {@code "*"}，
     * 表示该词适用于所有站点。
     * </p>
     */
    private Set<String> applicableSites;
}
